'''
这是一个测试GUI程序的写法，使用经典的面向对象的方式
'''
from tkinter import *
from tkinter import messagebox


class Application(Frame):

    def __init__(self, master=None):
        # 定义构造函数!!!!千万别写成——int———（类型转换）
        # ——init———才是初始化！！！！
        super().__init__(master)  # 调用父类的构造方法，把root传给父类
        self.master = master  # 定义组件属性
        self.pack()  # 创建布局管理器排版显示

        self.creat_widget()  # 注意方法名一致性

    def creat_widget(self):
        self.btn01 = Button(self)
        self.btn01["text"] = "点击送花"
        self.btn01.pack()
        self.btn01["command"] = self.songhua

        # 创建一个退出按钮
        self.btExit = Button(self, text="退出", command=root.destroy)  # root.destroy退出
        self.btExit.pack()

    def songhua(self):
        messagebox.showinfo("送花", "送你一朵小花花！")


if __name__ == '__main__':
    root = Tk()
    root.geometry("480x320+400+200")
    root.title("一个经典的GUI程序")
    app = Application(master=root)
    root.mainloop()  # 调用组件的mainloop()，进入事件循环，监听用户的操作
